- 
                Notifications
    
You must be signed in to change notification settings  - Fork 100
 
          [Rust] Change representation of Value for performance improvement
          #1761
        
          New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
          Benchmark Results
  | 
    
| 
           What a performance boost! 🚀  | 
    
Value for performance improvement
      298f87c    to
    f80e77b      
    Compare
  
    | 
           I dug a bit on why this change made such a difference, resulting on this compile time assertion here. The bottom line is: the  As an experiment, I've replaced the use of  This serves as further confirmation that  It's worth noting that this patch also promotes some degree of memory fragmentation as simple values like integers (that are cheap to copy) are no longer stack allocated and will get scattered around the heap a lot. However, quint specs aren't as long lived as real programs so, my intuition is that this fragmentation won't impact us that much. This is all worth considering as we work on this data structures in future iterations of the rust backend, though.  | 
    
| 
           Interesting. Switching from native data structures to immutable ones (from imbl) was a huge performance boost when we had the very first version of the rust evaluator. Let's discuss this next week.  | 
    
576dea8    to
    5096d33      
    Compare
  
    | 
           After discussing in the meeting, this makes more sense. From what Erick explained, I understood that it could be benefitial to move smaller data structures like tuples from imbl to native vectors due to allocation speed, as tuples won't "grow" over time (growing as in making copies of it with more elements). @erickpintor I think we are good to merge. You can approve (I can't as I'm the author) and merge it whenever you like  | 
    
| 
           Sounds good!  | 
    
(including screenshots is helpful)
CHANGELOG.mdfor any new functionality